package com.example.demo.mapper;

import com.example.demo.entity.AfshopCommentPicture;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 评价的图片表 Mapper 接口
 * </p>
 *
 * @author Mr.We
 * @since 2024-06-25
 */
@Mapper
public interface AfshopCommentPictureMapper extends BaseMapper<AfshopCommentPicture> {
    /**
     * 根据ID查询AfshopCommentPicture对象。
     * @param id 商品评论图片的唯一标识ID。
     * @return 返回匹配ID的AfshopCommentPicture对象，如果找不到，则返回null。
     */
    @Select("select * from afshop_comment_picture where id = #{value}")
    AfshopCommentPicture queryObject(@Param("value")Integer id);

    /**
     * 查询AfshopCommentPicture对象的列表。
     * @param map 包含查询条件的Map对象，可以指定多个查询条件以过滤结果。
     * @return 返回匹配查询条件的AfshopCommentPicture对象列表，如果找不到匹配项，则返回空列表。
     */
    @Select("<script>" +
            "select * from afshop_comment_picture" +
            "        where 1 = 1" +
            "        <if test='commentId != null'>" +
            "            and comment_id = #{commentId}" +
            "        </if>" +
            "        <choose>" +
            "            <when test='sidx != null and sidx.trim() != \"\"'>" +
            "                order by ${sidx} ${order}\n" +
            "            </when>" +
            "            <otherwise>" +
            "                order by id desc" +
            "            </otherwise>" +
            "        </choose>" +
            "        <if test='offset != null and limit != null'>" +
            "            limit #{offset}, #{limit}" +
            "        </if>" +
            "</script>")
    List<AfshopCommentPicture> queryList(Map<String, Object> map);

    /**
     * 查询符合查询条件的AfshopCommentPicture对象的总数。
     * @param map 包含查询条件的Map对象，用于统计满足条件的对象数量。
     * @return 返回满足查询条件的AfshopCommentPicture对象的数量。
     */
    @Select("select count(*) from afshop_comment_picture")
    int queryTotal(Map<String, Object> map);
}
